package com.bzkj.basicinfo.mapper;

import com.bzkj.basicinfo.domain.warehouse.PdaMsfxBardata;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 条码数据Mapper接口
 * 
 * @author lixinyu
 * @date 2025-01-20
 */
public interface PdaMsfxBardataMapper
{
    /**
     * 根据药品ID查询一级追溯码
     * 
     * @param drugID 药品ID
     * @return 条码列表
     */
    List<PdaMsfxBardata> selectBarcodesByDrugID(@Param("drugID") String drugID);

    /**
     * 根据药品ID列表查询一级追溯码
     *
     * @param drugIDs 药品ID列表
     * @return 条码列表
     */
    List<PdaMsfxBardata> selectBarcodesByDrugIDs(@Param("drugIDs") List<String> drugIDs);

    /**
     * 根据药品ID查询所有级别的追溯码
     *
     * @param drugID 药品ID
     * @return 条码列表
     */
    List<PdaMsfxBardata> selectAllBarcodesByDrugID(@Param("drugID") String drugID,@Param("billsID") String billsID);

    /**
     * 根据条码列表查询条码信息
     *
     * @param barcodes 条码列表
     * @return 条码列表
     */
    List<PdaMsfxBardata> selectBarcodesByBarcodes(@Param("barcodes") List<String> barcodes);

    /**
     * 根据单据号和药品ID查询条码信息
     *
     * @param billsID 单据号
     * @param drugID 药品ID
     * @return 条码列表
     */
    List<PdaMsfxBardata> selectBarcodesByBillsIDAndDrugID(@Param("billsID") String billsID, @Param("drugBatchNo") String drugBatchNo,@Param("drugID") String drugID);

    /**
     * 根据单据号查询所有条码信息
     *
     * @param billsID 单据号
     * @return 条码列表
     */
    List<PdaMsfxBardata> selectBarcodesByBillsID(@Param("billsID") String billsID);

    /**
     * 根据药品ID模糊查询条码信息
     *
     * @param drugID 药品ID
     * @return 条码列表
     */
    List<PdaMsfxBardata> selectBarcodesByDrugIDLike(@Param("drugID") String drugID);



    /**
     * 批量插入条码数据
     *
     * @param bardataList 条码数据列表
     * @return 插入成功的数量
     */
    int insertPdaMsfxBardataList(@Param("bardataList") List<PdaMsfxBardata> bardataList);
}
